--
-- Trigger que evita cambios de codigo en variables de precio que dejen mal la consistencia con comprobantes.
--

CREATE OR REPLACE FUNCTION public.tg_pre_upd_del()
  RETURNS trigger AS
$BODY$
BEGIN
  IF (TG_OP = 'UPDATE') THEN 
     IF (OLD.COD <> NEW.COD) THEN
        UPDATE COMM SET CODPRE = NEW.COD WHERE COMM.CODPRE = OLD.COD;
     END IF;
     RETURN NEW;
  END IF;
  IF (TG_OP = 'DELETE') THEN 
     IF EXISTS (SELECT * FROM COMM WHERE CODPRE = OLD.COD) THEN
        RAISE EXCEPTION 'Hay comprobantes ya generados con este precio, no puede eliminarse';
     ELSE 
       RETURN OLD;
     END IF;
  END IF;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.tg_pre_upd_del()
  OWNER TO abacouser;
  
--
SELECT aaversion('498.09','498.08');
--


